package cn.sdut.socket.bio.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * Created by majiatao
 * UDP：将数据机源目标封装在数据包中，不需要建立连接
 *      每个数据包的大小限制在64k内
 *      优点：无需连接，速度快
 *      缺点：无连接，不可靠
 *      举例：对讲机
 *      UDP通讯是不分客户端与服务端的，只分发送端和接收端
 * Java中关于Udp的类有两个
 * DatagramSocket ：用来发送和接收数据报包的套接字
 * DatagramPacket ：数据报包
 */
public class UdpSender {
    public static void main(String[] args) throws Exception {
        // 1. 建立UDP的Socket传输服务
        DatagramSocket socket = new DatagramSocket();
        // 2. 建立数据包,将要传输的数据封装到数据包中
        byte[] dataByte = "this is my first UDP message".getBytes();
        DatagramPacket packet = new DatagramPacket(dataByte, 0, dataByte.length,
                InetAddress.getLocalHost(), 9090);
        // 3. 通过UDP的Socket传输服务的send方法将数据包发送
        socket.send(packet);
        // 4. 关闭UDP的Socket传输服务
        socket.close();
    }
}
